TableView sweep batch 2: 45 dialog grids, sorting wired where it's real - #13019
Merged
Conversation
Batch 2 of the TableView sweep (#13017, #13018): every remaining DataGrid with CanUserSortColumns=true but no deliberate SortMemberPath sorting. Rows take keyboard focus, so the screen-reader fix (#13015) now covers these dialogs too. Sorting was decided per grid. In the DataGrid only plain text columns ever sorted (a view-level sort); TableViewHeaderSorter reorders the backing collection, so it is wired only where the list order is presentation-only and nothing consumes collection order: - Wired (12 grids): FontCollector, FindRule, ManualChosenEncoding, PickFontName, PickLayerFilter, PickRuleProfile, PickOnlineSubtitle, and the track lists in PickMatroskaTrack/PickMp4Track/PickTsTrack/ PickVobSubLanguage - with typed keys (numeric stream ids, nullable comparers) and header-double-click guards where double-tap accepted the dialog. - Dropped everywhere else: subtitle/fix previews in timeline order, ASSA/SSA style and attachment lists (order is written to the file), MultipleReplace exports, batch queues, join/split file lists, and embedded-track lists (order is the output track order). Each carries a code comment with the reason. Other notable mappings: - DataGridCheckboxMultiSelect replaced by native extended selection + TableViewExtras.AddSpaceToggle (AiReview, ApplyDurationLimits, ConvertActors, FixNetflixErrors incl. its canToggle semantics, PickLayerFilter, RemoveTextForHearingImpaired; RemoveUnicodeCharacters hand-rolls it to coexist with its in-cell ReplaceWith TextBox editor). - Home/End first/last-row navigation hoisted into TableViewExtras.AttachHomeEndNavigation (sync + Assa/Ssa windows). - AssaStyles' DataGridCollectionView category filter replaced by a plain rebuilt ObservableCollection view. - IsFocused checks on grids became IsKeyboardFocusWithin (focus lands on row containers now) in CutVideo/PickMatroskaTrack/PickVobSubLanguage. - Sync-point lists show a column header now (TableView cannot hide headers). Remaining DataGrids: Shortcuts, BatchConvert and FixCommonErrors (real SortMemberPath sorting) - batch 3. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
A TableView with a star column measured without a width constraint demands more than the whole window (star columns have no content size to fall back on - verified headless: 1012px desired in a 1000px window), so the sync-point lists in their Auto-sized outer columns blew up the middle panel, squeezed the subtitle grids to slivers and pushed content past the window edge. Give the lists the fixed 280px width the DataGrid version had visually. BurnIn/TransparentSubtitles look like the same pattern but are safe: their batch column switches to star whenever the batch list is visible. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Continues #13017 / #13018. Converts every remaining DataGrid except the three with deliberate
SortMemberPathsorting (Shortcuts, BatchConvert, FixCommonErrors — batch 3). All 45 dialogs get keyboard-focusable rows, extending the #13015 screen-reader fix.Sorting decisions
All these grids had
CanUserSortColumns = true, but in the DataGrid only plain text columns ever sorted, as a view.TableViewHeaderSorterreorders the backing collection, so it was wired only where list order is presentation-only and nothing consumes collection order:Wired (12 grids): FontCollector, FindRule, ManualChosenEncoding, PickFontName, PickLayerFilter, PickRuleProfile, PickOnlineSubtitle, and the track lists of PickMatroskaTrack / PickMp4Track / PickTsTrack / PickVobSubLanguage. Typed sort keys (e.g. VobSub
#sorts by numeric StreamId, nullable comparers for profile limits), and dialogs where double-tap = OK got anIsInColumnHeaderguard so header double-clicks sort instead of accepting.Dropped (with a code comment stating why, per grid): subtitle/fix previews in timeline order; ASSA/SSA styles + attachments (list order is written into the file/settings); MultipleReplace rule exports; ImportImages/ImportPlainText (order feeds OCR/import); batch queues (BurnIn, SpeechToText, TransparentSubtitles); JoinSubtitles (joins in list order); embedded-track lists (order = output track order); Profiles (saved in order).
Other notable mappings
DataGridCheckboxMultiSelectfully retired from these dialogs: extended selection is native, Space-toggle viaTableViewExtras.AddSpaceToggle(FixNetflixErrors keeps its "only fixable rows toggle" semantics; RemoveUnicodeCharacters hand-rolls it to coexist with its in-cell ReplaceWith TextBox editor — TableView has no cell editing).TableViewExtras.AttachHomeEndNavigation— Home/End first/last-row jump hoisted into the component (sync + Assa/Ssa windows).DataGridCollectionViewcategory filter → plain rebuiltObservableCollectionview (the DataGrid package type is gone from these windows).IsFocusedchecks →IsKeyboardFocusWithin(focus is on row containers now) in CutVideo, PickMatroskaTrack, PickVobSubLanguage — these would have silently broken Enter/Home/End handling.MinWidth(star columns have no intrinsic width under SizeToContent).Known visual delta
Testing
Builds clean, no new warnings. Smoke-test priorities:
🤖 Generated with Claude Code